import json
import os
import aiofiles
from datetime import datetime
import logging

async def log_user_query(user_query: str, phone_number: str, conversation_id: str = None) -> None:
    """
    记录用户提问日志到专门的文件中
    
    Args:
        user_query: 用户查询内容
        phone_number: 用户手机号
        conversation_id: 对话ID，可选
    """
    # 创建用户提问日志目录（如果不存在）
    log_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), "user_queries")
    if not os.path.exists(log_dir):
        os.makedirs(log_dir)
    
    # 创建日志文件路径（按日期分类）
    current_date = datetime.now().strftime("%Y-%m-%d")
    log_file_path = os.path.join(log_dir, f"user_queries_{current_date}.log")
    
    # 构建日志记录
    timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    log_entry = {
        "timestamp": timestamp,
        "phone_number": phone_number,
        "conversation_id": conversation_id,
        "user_query": user_query
    }
    
    # 异步写入日志文件
    try:
        async with aiofiles.open(log_file_path, mode="a", encoding="utf-8") as f:
            await f.write(json.dumps(log_entry, ensure_ascii=False) + "\n")
    except Exception as e:
        logging.error(f"[用户提问日志] 写入日志文件失败: {str(e)}")
        raise